#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod=1000000007;
const int N=10000010;
int n;
int dp[N][3];
int add(int a,int b)
{
	return (a%mod+b)%mod;
}
signed main()
{
	cin>>n; 
	dp[1][0]=1;
	dp[1][1] =0;
	dp[1][2]=0;
	
	dp[2][0]=2;
	dp[2][1]=1;
	dp[2][2]=1;
	//dp数组就是表示到第i列是否被填满有3中状态 
	for(int i=3;i<=n;i++)
	{
		dp[i][0]=add(add(dp[i-1][0],dp[i-2][0]),add(dp[i-1][1],dp[i-1][2]))%mod;
		dp[i][1]=add(dp[i-1][2],dp[i-2][0])%mod;
		dp[i][2]=add(dp[i-1][1],dp[i-2][0])%mod;
	}
	cout<<dp[n][0];
	return 0;
}